/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package proliferacion;

import java.awt.Point;

/**
 *
 * @author Systems
 */
public class Controlador {

    public java.awt.Polygon crearpoligono(int alto, int ancho, int n, int z) {
        int radio = 10;
        Point p = new Point(156, 120);
        java.awt.Polygon x = CrearPoligono(radio, p, 6);

        int signo;
        int yn;
        int xn;

        signo = (int) (Math.random() * 6 + 1);
        do {
            if (signo < 6 && signo > 3) {
                xn = (int) p.getX() + 13;
            } else {
                xn = (int) p.getX() - 13;
            }
            signo = (int) (Math.random() * 6 + 1);
            if (signo < 6 && signo > 3) {
                yn = (int) p.getY() + 13;
            } else {
                yn = (int) p.getY() - 13;
            }

        } while (((xn - radio) < 0) || ((xn + radio) > ancho) || (yn - radio < 0) || ((yn + radio) > alto));
        
        p = new Point(xn, yn);
        x = CrearPoligono(radio, p, 6);

        proliferacion.logica.Celula celOriginal = new proliferacion.logica.Celula(6, z);
        proliferacion.AccesoBDProliferacion acceso = new proliferacion.AccesoBDProliferacion();
        acceso.addCelula(celOriginal);
        int val = celOriginal.getIdCell();
        proliferacion.logica.Celula cel = acceso.getCelula(val);
        return x;
    }

    public int sumaAngulosInternos(int numeroLados) {
        return (numeroLados - 2) * 180;
    }

    public int sumaAngulosExternos(int numeroLados) {
        return ((numeroLados - 2) * 180) / numeroLados;
    }

    public Point restaVectores(Point puntoA, Point puntoB) {
        Point puntoC = new Point();
        puntoC.x = puntoB.x - puntoA.x;
        puntoC.y = puntoB.y - puntoA.y;
        return puntoC;
    }

    public java.awt.Polygon CrearPoligono(double r, Point centro, int n) {
        int coordX[] = new int[n];
        int coordY[] = new int[n];
        for (int i = 0; i < n; i++) {
            coordX[i] = (int) (centro.getX() + r * Math.cos(2 * Math.PI * i / n));
            coordY[i] = (int) (centro.getY() + r * Math.sin(2 * Math.PI * i / n));
        }
        return (new java.awt.Polygon(coordX, coordY, n));
    }
    
}
